参考
https://wiki.mnbvc.org/doku.php/%E6%95%B0%E6%8D%AE%E6%95%85%E4%BA%8B
,讨论研究一个通用的解决方案