User talk:Zhaofeng Li

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Reflinks helpful in fixing reference in History of writing[edit]

Reflinks was helpful in fixing this reference in History of writing. The web page had the author in the title and the publisher as the author, so the reflinks-generated template needed some additional changes. FYI, I used the "Enter wikitext" interface under "Show advanced input". Thanks for the good work. -- (talk) 19:48, 5 November 2014 (UTC)

Clarification: Reflinks did not make any changes to the wikitext as it was in the article:
  • <ref>[Geometric Signs – A New Understanding]</ref>
so I changed the reference to a bare link:
  • <ref></ref>
-- (talk) 20:30, 5 November 2014 (UTC)
The tool can only parse author and publisher information from the microdata on the pages, which the webpage in question does not include. And the second reference in your clarification isn't valid wikitext even (The correct syntax is [url title]). Zhaofeng Li [talk... contribs...] 10:32, 7 November 2014 (UTC)
"The correct syntax is ..."
Right, but the tool would not recognize the incorrect syntax in the first reference, so I was forced to convert the reference to a bare link before running the tool on it. Isn't the tool robust enough to recognize that the URL and the text are reversed in the first reference? Reversing the URL and the text seems like an error an inexperienced editor would make. Can't the tool recognize that "[TEXT URL]" is invalid, but meaningful?
-- (talk) 11:53, 7 November 2014 (UTC)

VisualEditor newsletter—November 2014[edit]

Suggest displaying the Reflinks version number and release date[edit]

There is no Reflinks version number or release date on the Reflinks web page. -- (talk) 04:10, 7 November 2014 (UTC)

The tool is being actively developed, and is not stable enough to have numeric version numbers. However, every single change to the software is identified with a commit ID (much like the diff IDs here), see the commit log. The main version always follows the "labs-stable" branch, and the test version always follows the "master" branch. Zhaofeng Li [talk... contribs...] 10:32, 7 November 2014 (UTC)
Why can't software "being actively developed" have a version number? How about "0.0.1", "0.0.3", etc. for "the test version" and "0.0.2", "0.0.4", etc. for the "labs-stable" branch? That's the odd-even version numbering that was used for Linux kernel kernel releases. And a commit id is not a substitute for a version number. A timestamp would be better than nothing. -- (talk) 12:13, 7 November 2014 (UTC)
Well, I still find numeric version numbers redundant. It's hard to decide when to release a new version, and they are of no use for end-users (They don't need to download anything, or regularly check if they have the latest version). If you think releasing a new fancy version makes you feel good, sadly it's not for me. Rather, I find setting a permanent version number for my incomplete, bug-ridden code really uncomfortable. Timestamps are no good for marking versions, either, since it's inconvenient to locate a specific commit with one. For now, having commit IDs is enough for me. Zhaofeng Li [talk... contribs...] 13:12, 7 November 2014 (UTC)
Why don't you need a version number for bug reporting? -- (talk) 13:56, 7 November 2014 (UTC)
Agreed. I've added the current commit ID to the default edit summary. It's way more useful than any version number. But anyway, it's not really that difficult to find out which version the user's using without it. Zhaofeng Li [talk... contribs...] 14:26, 7 November 2014 (UTC)
Thanks. That's a good idea. Could you put the commit ID and a link to the commit on the web page too? I have been using the text entry tool "Show advanced input/Enter wikitext" interface, so there is no edit summary in that case. There is already a row of links along the bottom of the page, so that might be a good place for it. -- (talk) 14:46, 7 November 2014 (UTC)
A link to the commit would be sufficient for bug reporting. Striking myself. -- (talk) 14:51, 7 November 2014 (UTC)
The Reflinks test version shows the commit ID even when using the "Show advanced input/Enter wikitext" interface:
  • "Last commit: 4405d3f UserOptions.php: Enable all default options if 'defaults' is set"
Thanks ... and striking myself, again.
-- (talk) 15:15, 7 November 2014 (UTC)

Reflinks does not recognize some references[edit]

Reflinks does not recognize these references:

A bare link preceded by text that is the intended title:

  • <ref>The Khipu Database Project,</ref>(edit 1) (edit 2)
(Edit 1 was done manually. Edit 2 was done with the assistance of Reflinks.)

A named external link followed by text annotation:

  • <ref>[ Regional Fishery Management Councils] (with map)</ref> (edit)
(The "(with map)" text annotation was manually removed before running Reflinks and then replaced.)

NB: I am using the Reflinks web page.

-- (talk) 04:36, 7 November 2014 (UTC)

The tool changed references with additional information before, but the functionality was removed since it did more harm than good. There was no reliable way to integrate the (possibly badly formatted) additional information into the citation template, so the additional information was lost during the process. The user is responsible for expanding those references manually. Zhaofeng Li [talk... contribs...] 10:32, 7 November 2014 (UTC)
Couldn't the tool convert the bare URL or the named external link to a "cite web" template, without attempting to interpret surrounding text?
  • <ref>The Khipu Database Project,</ref>
  • <ref>[ Regional Fishery Management Councils] (with map)</ref>
-- (talk) 12:39, 7 November 2014 (UTC)
That will result in even worse formatted references. Maybe I can try, but editors will be required to manually move the additional information into the citation templates. Zhaofeng Li [talk... contribs...] 13:21, 7 November 2014 (UTC)
"... editors will be required to manually move the additional information into the citation templates."
That is fine with me. AFAICT, the tool silently ignores references it cannot parse, so a simpler alternative would be to list those references along with the ones that resulted in HTTP errors.
-- (talk) 13:53, 7 November 2014 (UTC)
... the tool silently ignores references it cannot parse, ...
Confirmed. Reflinks silently ignores the "Geometric Signs" reference in the wikitext of this version of History of writing.
I apologize for not providing a Reflinks version number in this bug report, but I don't know where to find it.
-- (talk) 14:22, 7 November 2014 (UTC)
Um, good finding. The wikilinks are quite useful too, as if I had zero idea of what they meant. Anyway, you don't need to give a version number in this case :) But actually, there may be many well-formatted plain references that do not need fixing (and not parsed by Reflinks), so it's not really a good idea to list them all. Zhaofeng Li [talk... contribs...] 14:59, 7 November 2014 (UTC)
Reporting external links with invalid syntax would be sufficient. BTW, your user page doesn't say you are a software engineer ... Face-smile.svg -- (talk) 15:29, 7 November 2014 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── It's really not worth the trouble determining if a plain reference is using "valid formatting" or not. There are so many citation styles out there. However, only listing those with "syntax errors" (e.g. swapping the two parameters in an external link) will catch neither of the above examples. By the way, I'm a bit surprised to learn that only "software engineers" are supposed to know those terms. I'm not one, so I must rock. :) Zhaofeng Li [talk... contribs...] 15:47, 7 November 2014 (UTC)

The first example above is an annotated bare link.
The second example above is an annotated, named external link.
The software documentation should clearly state whether or not Reflinks recognizes those.
This external link, as you already pointed out, has invalid syntax, because the order of the URL and the text are reversed:
  • <ref>[Geometric Signs – A New Understanding]</ref>
Is Reflinks supposed to recognize that or not?
What are the software requirements for Reflinks?
-- (talk) 16:49, 7 November 2014 (UTC)
Yeah, the documentation probably needs some work. I'm working on that "invalid syntax" thing, will post updates in the section above. The software requirements along with the instructions are available here. Zhaofeng Li [talk... contribs...] 00:39, 8 November 2014 (UTC)


When I tried to do reflinks on Blink (U.V.U.K. song), my internet explorer ended up with a blank page. Now it is taking forever to GET TO reflinks at all. --Jax 0677 (talk) 21:35, 9 November 2014 (UTC)

Tech News: 2014-46[edit]

A barnstar for you![edit]

Vitruvian Barnstar Hires.png The Technical Barnstar
For maintaining Reflinks, a tool that truly can not be missed! Randykitty (talk) 17:20, 10 November 2014 (UTC)

No webservice for Reflinks[edit]

Unfortunately, I am missing Reflinks at this moment. currently yields this message:

No webservice
The URI you have requested, /fengtools/reflinks/, is not currently serviced.
If you have reached this page from somewhere else...
This URI is part of the fengtools tool, maintained by Zhaofeng Li.
That tool might not have a web interface, or it may currently be disabled.
If you're pretty sure this shouldn't be an error, you may wish to notify the tool's maintainers (above) about the error and how you ended up here.
If you maintain this tool
You have not enabled a web service for your tool, or it has stopped working because of a fatal error. You may wish to check your logs or common causes for errors in the help documentation.

Peaceray (talk) 17:19, 11 November 2014 (UTC)

Same error here. --I am k6ka Talk to me! See what I have done 21:58, 11 November 2014 (UTC)
I am also having the same error. The reflinks tool has been down for a few days now.--BabbaQ (talk) 15:21, 12 November 2014 (UTC)
Same result for me, too. I want to express my thanks for your work, and hope you can stick with it.DThomsen8 (talk) 00:38, 13 November 2014 (UTC)
Li has not done a contribution since 9 November, perhaps something has happened to him in 3D. Meanwhile, PATIENCE--DThomsen8 (talk) 00:43, 13 November 2014 (UTC)
Same here, Infact every tool I use seems to be down more than up - I'm beginning to wonder if Toolserver's haunting me Face-grin.svg!. –Davey2010(talk) 00:52, 13 November 2014 (UTC)
@Davey2010, Dthomsen8, BabbaQ, K6ka, Peaceray: Really, really sorry for the recent outages. Long story short, the tool's webservice keeps being shutted down abruptly at the moment. I don't know what caused it, and sadly I don't have enough time to diagnose it now (I'm now on my phone). Will work on it as soon as I get home tomorrow afternoon. Sorry again for all the troubles. I hope everything gets back on track soon. Zhaofeng Li [talk... contribs...] 14:34, 13 November 2014 (UTC)
Zhaofeng Li, thank you for attending to this. Please take all of our comments as a testament for the utility of Reftool instead of a criticism for a system problem. I typically use it every time that I encounter a page with a bare URL, excepting PDFs. Peaceray (talk) 15:43, 13 November 2014 (UTC)
No worries Zhaofeng Li these things happen, I don't mean this in a funny way but we all have lives and can't be on here 24/7 so no worries :) –Davey2010(talk) 15:50, 13 November 2014 (UTC)
Don't worry, the tool is very useful and we all appreciate your assistance with keeping it going :)--BabbaQ (talk) 21:20, 13 November 2014 (UTC)

Reflinks error[edit]

I got an error trying to run reflinks for History_of_the_Poles_in_the_United_States ([10]). --Piotr Konieczny aka Prokonsul Piotrus| reply here 03:19, 13 November 2014 (UTC)

Reflinks Archive[edit]

I saw reflinks run here, where it converted all the references very well! It did a really good job. It's just that when it converts the archived links, it thought the archived link was the original url. Is it possible for Reflinks to do something different when it sees "" because it is thinking that web.archive is the publisher. Thanks,  ΤheQ Editor  Talk? 20:51, 13 November 2014 (UTC)

I think the major limiting factor here at the moment is that Zhaofeng Li is really busy with life at the moment. But it should be possible to look at the URL to determine if it is After that, it is a matter of parsing the URL for the archiveurl & archivedate, since they are contained in the URL, then adding |deadurl=yes.
Zhaofeng Li, I am dabbling in PHP & Python as of late. I have been doing UNIX shell scripting for a couple dozen years & Perl scripting for a couple of decades. Immediately, my life is also busy for at least this month, but perhaps after that I could get a copy of your script & add the algorithm. I am going to get an introduction to the Wiki[mp]edia APIs this weekend.
Peaceray (talk) 21:11, 13 November 2014 (UTC)
@Peaceray: Many thanks for offering to help. The code is available on GitHub, and you can contribute by submitting a pull request. For a quick introduction to the code, metadata parsing is handled by a chain of MetadataParsers. This feature can be implemented by creating a metadata parser which looks for "" URLs, change the url to the original one and fill in the archiveurl and archivedate fields (Some regex magic will do the work). src/Reflinks/MetadataParsers/FixerMetadataParser.php is an example of a parser that changes already-parsed metadata from previous parsers in the chain. Afterwards, the CitationGenerators should be modified to include the info in the generated {{Cite web}} templates and plain CS1 citations. I'm going to write some in-depth documentations this afternoon. Good luck! Zhaofeng Li [talk... contribs...] 04:46, 14 November 2014 (UTC)
I've written a quick tutorial to explain this. Zhaofeng Li [talk... contribs...] 00:18, 15 November 2014 (UTC)
@TheQ Editor, Peaceray: Yes check.svg Done Just had some free time, so I've implemented it ([11][12][13]). The feature is now available on the test version, and here is an example of what it does. Any thoughts on this? Zhaofeng Li [talk... contribs...] 13:32, 15 November 2014 (UTC)
Wow! That was impressive (from a non-programmer's POV). That would work great! Cheers,  ΤheQ Editor  Talk? 17:55, 15 November 2014 (UTC)

Reflinks overdose[edit]

Reflinks crashes when it tries to fix some heavy duty articles (400-500 bare links).

P.S.Thank you for the great tool you created.--Catlemur (talk) 12:38, 16 November 2014 (UTC)

@Catlemur: I've now extended the execution time limit to 10 minutes. Anyway, I think there are better approaches, like stopping the program shortly before the limit is reached (generating an incomplete result) or setting a maximum processing time for each reference. Will work on it later. By the way, what's the page you were trying to use the tool on? Zhaofeng Li [talk... contribs...] 14:16, 16 November 2014 (UTC)

Deaths in 2014,Deaths in May 2013 e.t.c.--Catlemur (talk) 14:32, 16 November 2014 (UTC)

Tech News: 2014-47[edit]

Copyright checks when performing AfC reviews[edit]

Hello Zhaofeng Li. This message is part of a mass mailing to people who appear active in reviewing articles for creation submissions. First of all, thank you for taking part in this important work! I'm sorry this message is a form letter – it really was the only way I could think of to covey the issue economically. Of course, this also means that I have not looked to see whether the matter is applicable to you in particular.

The issue is in rather large numbers of copyright violations ("copyvios") making their way through AfC reviews without being detected (even when easy to check, and even when hallmarks of copyvios in the text that should have invited a check, were glaring). A second issue is the correct method of dealing with them when discovered.

If you don't do so already, I'd like to ask for your to help with this problem by taking on the practice of performing a copyvio check as the first step in any AfC review. The most basic method is to simply copy a unique but small portion of text from the draft body and run it through a search engine in quotation marks. Trying this from two different paragraphs is recommended. (If you have any question about whether the text was copied from the draft, rather than the other way around (a "backwards copyvio"), the Wayback Machine is very useful for sussing that out.)

If you do find a copyright violation, please do not decline the draft on that basis. Copyright violations need to be dealt with immediately as they may harm those whose content is being used and expose Wikipedia to potential legal liability. If the draft is substantially a copyvio, and there's no non-infringing version to revert to, please mark the page for speedy deletion right away using {{db-g12|url=URL of source}}. If there is an assertion of permission, please replace the draft article's content with {{subst:copyvio|url=URL of source}}.

Some of the more obvious indicia of a copyvio are use of the first person ("we/our/us..."), phrases like "this site", or apparent artifacts of content written for somewhere else ("top", "go to top", "next page", "click here", use of smartquotes, etc.); inappropriate tone of voice, such as an overly informal tone or a very slanted marketing voice with weasel words; including intellectual property symbols (™,®); and blocks of text being added all at once in a finished form with no misspellings or other errors.

I hope this message finds you well and thanks again you for your efforts in this area. Best regards--Fuhghettaboutit (talk) 02:20, 18 November 2014 (UTC).

       Sent via--MediaWiki message delivery (talk) 02:20, 18 November 2014 (UTC)

A barnstar for you![edit]

Original Barnstar Hires.png The Original Barnstar
Thank you for fixing a lot of my empty references. Arbustum (talk) 00:49, 22 November 2014 (UTC)

Reflinks on Akhil (actor)[edit]

Hi Zhaofeng. Thank you so much for this version of Reflinks. Would you try to run it on Akhil (actor) and see if there is any issues? I did and Reflinks for reasons I have no clue about stuck in a lot of HTML code. I intended to save the page and undo, just to show you the result, but as the edit contained a blacklisted URL was not allowed to do so. Best, Sam Sing! 14:03, 22 November 2014 (UTC) (please WP:PING when replying)

 Confirmed Looks like it's a bug in the HTML5 parser. Since I'm not familiar with all those DOM parsing stuff, I've filed a bug for that. Let's see what we can do... Zhaofeng Li [talk... contribs...] 05:05, 23 November 2014 (UTC)
@Sam Sailor: I've done some dirty fixes to remove the trailing HTML. It should work for now while I'm waiting for the parser bug to be fixed. Zhaofeng Li [talk... contribs...] 08:42, 23 November 2014 (UTC)
Sounds good, thank you again. Best, Sam Sing! 09:56, 23 November 2014 (UTC)

Tech News: 2014-48[edit]

Reflinks suggestion[edit]

Thank you so much for providing a free (free copyright, and propaganda-free) replacement for the old reflinks. It works better, too -- especially with the ability to paste wikicode as input. I hope that you will collaborate with citoid on a forward-moving basis, to integrate these concepts directly into Wikipedia.

I have an important request, if you please. It needs to have an option to set the date format (DMY or MDY). It needs to have "do not add access dates" and "Use the base domain name as work when this information cannot be parsed" *not* checked by default, or it needs to remember my settings perhaps with a cookie. Those options are automatically presumptive, and rarely desirable besides that (often resulting in the creation of junk data), and so they need to be deliberately opted in. It would be great to have an additional option to update all accessdates, whether the citation is bare or not, especially to clean up after the tool's own aforementioned problem like this.

Thank you very much. — Smuckola (Email) (Talk) 17:20, 5 December 2014 (UTC)

@Smuckola: I agree that different people have different requirements, so it'd be a good idea to let people customize their default options. I'll re-consider the global default options and work on your suggestions. About Citoid, it's certainly a better way to integrate Reflinks-like functionality to the wiki. Will look into it. Thanks for your suggestions. Zhaofeng Li [talk... contribs...] 02:21, 6 December 2014 (UTC)

A barnstar for you and Reflinks![edit]

Vitruvian Barnstar Hires.png The Technical Barnstar
Thank you for Reflinks! — Smuckola (Email) (Talk) 05:11, 6 December 2014 (UTC)
Thank you! Zhaofeng Li [talk... contribs...] 00:31, 12 December 2014 (UTC)

Tech News: 2014-50[edit]

Reflinks tool[edit]

Hi, Zhaofeng Li, is your reflinks tool down? Lotje (talk) 08:18, 10 December 2014 (UTC)

@Lotje: Fixed I've restarted the server. Thanks for the note. Zhaofeng Li [talk... contribs...]

A barnstar for you![edit]

Vitruvian Barnstar Hires.png The Technical Barnstar
Wonderful. Reflinks is an excellent tool. Tradereddy (talk) 14:11, 11 December 2014 (UTC)
Thank you! Zhaofeng Li [talk... contribs...] 01:27, 12 December 2014 (UTC)

Reflinks request[edit]

Hi Zhaofeng Li, Thank you so much for providing Reflinks tool. I'm bengali wikipedia user. On the past, i used this tool & i was able to fixed any page. but using your tool, i can't fix any page on bn wikipedia. Please add bn wikipedia here (on dropdown box). Thank you --Aftabuzzaman (talk) 15:08, 13 December 2014 (UTC).

(talk page stalker) @Aftabuzzaman: Note that Dispenser's tool is now at - hope this helps in the meantime! GoingBatty (talk) 19:27, 13 December 2014 (UTC)
@GoingBatty: But Dispenser's tool doesn't work. it gives "A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred." see this exemple --Aftabuzzaman (talk) 23:54, 13 December 2014 (UTC)
@Aftabuzzaman: Oops, you're right! A lot of Dispenser's tools work at the new URLs, but not this one. Sorry! GoingBatty (talk) 00:00, 14 December 2014 (UTC)
@Aftabuzzaman: Yes check.svg Done It's now added. Enjoy! Zhaofeng Li [talk... contribs...] 00:46, 14 December 2014 (UTC)
Thank you :) --Aftabuzzaman (talk) 00:58, 14 December 2014 (UTC)

Tech News: 2014-51[edit]

Combine duplicate references?[edit]

Dear Zhaofeng Li: First, I would like to say how much I am enjoying using your Reflinks rewrite. It saves me a lot of time.

I remember that the old Reflinks used to combine duplicate references if the same bare URL was cited in more than one spot in an article. Do you have any plans to implement that feature? Or, do you know of another gadget that does it? —Anne Delong (talk) 18:06, 16 December 2014 (UTC)

@Anne Delong: I've written some dirty code to do this on the the test version. It currently names the references like VE (":1", ":2", etc). Will polish it when I get home this weekend. What do you think? Zhaofeng Li [talk... contribs...] 08:40, 17 December 2014 (UTC)
Here's an example edit. As for the plan, I'd like an option to disable the functionality, as well as the ability to name citations meaningfully (e.g. the domain name of the link), before it's moved to the stable version. Zhaofeng Li [talk... contribs...] 10:31, 17 December 2014 (UTC)
Zhaofeng Li, I tried it out out this page, admittedly not a very strenuous test, and it worked fine. Did you mean that your software would examine the URL and pick a meaningful name, or did you mean that the user would do that? If the user, I would suggest adding a more distinctive and easily identifiable default name to the combined references. The old Reflinks used "Autogenerated1", etc., but the main thing is that it is a searchable piece of text that is not a common word. Likely a lot of people will not bother to replace default name, but if they are identifiable and reasonably unique, another user could use a tool such as AWB to find these later and replace them with more sensible names. If you don't like "augtogenerated", something like "dupfref", "multiref", "defaultname", or anything like that would do. Programming the software to pick out a sensible name would be great if it's practical. You might also run across ones where someone has already given one of the duplicate refs a name - tricky, since it may not be the first instance. Anyway, thanks for working on this. It will be very helpful. Should I use this version now, or are you still experimenting with this version of the code? —Anne Delong (talk) 16:07, 17 December 2014 (UTC)
@Anne Delong: Thanks for the comments. The tool will be able to name the citations after their domain names automatically. If a sensible name cannot be found, "autogenerated" or similar according to your suggestion may be used instead. This version is still experimental, but can be used. However, please be extra careful and examine the diff before saving the edit. Thanks! Zhaofeng Li [talk... contribs...] 22:55, 17 December 2014 (UTC)
  • Zhaofeng Li, will it be clever enough to properly name references where there are multiple distinct URLs with the same domain name? An example might be a long running story on some occurrence with // and // and // How would it name the refs in situations like that? — {{U|Technical 13}} (etc) 05:00, 18 December 2014 (UTC)
@Technical 13: Good point, and will take that into account. It will add some numbers at the end of the names. Zhaofeng Li [talk... contribs...] 07:50, 18 December 2014 (UTC)

In this edit, the 2nd change was to change 'name=smhlindt1' to 'name=":2"'. I realise the same ref occurred later in the article, and it consolidated the two, which is good, but it would be better if it retained the existing name, which was far more meaningful than ":2". Nurg (talk) 10:00, 18 December 2014 (UTC)

@Nurg: Duplicated references with names are a bit tricky, but I'll try my best to solve it. Anyway, there will be an option to disable the feature. Zhaofeng Li [talk... contribs...] 10:30, 18 December 2014 (UTC)

@BabbaQ, Guy1890, David O. Johnson: Hi, you are being pinged as you had asked for the functionality of combining duplicated references before. The feature is now implemented on the test version. Could you try it out and share what you think? Thanks a lot. A few planned improvements are mentioned above. Face-smile.svg Zhaofeng Li [talk... contribs...] 13:55, 18 December 2014 (UTC)

Hi Zhaofeng Li, I used the test version on the Opinion polling for the Israeli legislative election, 2015 article [46]. It looks like it worked just fine. Maybe using something more descriptive than the current ref name could be automatically generated? David O. Johnson (talk) 01:35, 23 December 2014 (UTC)
@David O. Johnson: Yes, that's a planned feature. Sadly I don't have enough time at the moment, so it'll be a while before I can implement it. Sorry about that! Zhaofeng Li [talk... contribs...] 03:44, 24 December 2014 (UTC)
It's no problem at all; thank you.David O. Johnson (talk) 05:02, 24 December 2014 (UTC)

VisualEditor newsletter—December 2014[edit]

Tech News: 2014-52[edit]

A barnstar for you![edit]

Citation Barnstar Hires.png The Citation Barnstar
Surely you deserve this. Your service is beyond price. Thank you for your great work. 7&6=thirteen () 15:16, 23 December 2014 (UTC)
Thanks! Zhaofeng Li [talk... contribs...] 23:39, 23 December 2014 (UTC)

Seasonal Greets![edit]

Wikipedia Happy New Year.png Merry Christmas and a Prosperous 2015!!!

Hello Zhaofeng Li, may you be surrounded by peace, success and happiness on this seasonal occasion. Spread the WikiLove by wishing another user a Merry Christmas and a Happy New Year, whether it be someone you have had disagreements with in the past, a good friend, or just some random person. Sending you a heartfelt and warm greetings for Christmas and New Year 2015.
Happy editing,
--L235-Talk Ping when replying 15:29, 25 December 2014 (UTC)

Spread the love by adding {{subst:Seasonal Greetings}} to other user talk pages.